package com.znxz.hzqiuxm.ziniublog.user.domain.dao;

import com.znxz.data.md.qxkjmongo.mongodb.BaseRepository;
import com.znxz.hzqiuxm.ziniublog.user.domain.entity.UserDO;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.repository.Query;

import java.util.Optional;

/**
 * Copyright © 2018年 ziniuxiaozhu. All rights reserved.
 *
 * @Author 临江仙 hzqiuxm@163.com
 * User领域模型持久化服务类
 * @Date 2018/8/30 20:23
 */
public interface UserRepository extends BaseRepository<UserDO,ObjectId> {

    /**
     * 根据登录名或手机号查询用户信息,符合任何一个条件的都会查询出来
     * 一般二者都是唯一的，满足用户输入用户名或手机号登录的需求，把二者设置成一样即可
     * @param userName 登录名
     * @param cellName  手机号
     * @return List<UserDO> 用户列表，正常只有一个
     */
    Optional<UserDO> findByUserNameOrCellNum(String userName, String cellName);

    /**
     * 根据登录名查找登录的邮箱
     * @param userName
     * @return
     */
    @Query(value="{ 'userName' : ?0 }", fields="{ 'email' : 1, '_id' : 0}")
    String findByUserName(String userName);


}
